<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>IDA SDK: fpro.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">IDA SDK
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="files.html"><span>Header&#160;Files</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a>  </div>
  <div class="headertitle">
<div class="title">fpro.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>System independent counterparts of FILE* related functions from Clib. </p>
<p>You should not use C standard I/O functions in your modules. The reason: Each module compiled with Borland (and statically linked to Borland's library) will host a copy of the FILE * information.</p>
<p>So, if you open a file in the plugin and pass the handle to the kernel, the kernel will not be able to use it.</p>
<p>If you really need to use the standard functions, define USE_STANDARD_FILE_FUNCTIONS. In this case do not mix them with q... functions. </p>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a826d67a958355c5ff8b3ca65656ff1c8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#ab65ed42d67e6c517c746ff2a6a187016">ssize_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fpro_8h.html#a826d67a958355c5ff8b3ca65656ff1c8">qgetline</a> (<a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *buf, FILE *fp)</td></tr>
<tr class="memdesc:a826d67a958355c5ff8b3ca65656ff1c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read line from file (the newline is removed from the output buffer)  <a href="#a826d67a958355c5ff8b3ca65656ff1c8">More...</a><br /></td></tr>
<tr class="separator:a826d67a958355c5ff8b3ca65656ff1c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a52690362de17617ca98f927e83b84ae5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a52690362de17617ca98f927e83b84ae5"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fpro_8h.html#a52690362de17617ca98f927e83b84ae5">qrename</a> (const char *oldfname, const char *newfname)</td></tr>
<tr class="memdesc:a52690362de17617ca98f927e83b84ae5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rename a file: 'newname' may exist, and will be deleted. <br /></td></tr>
<tr class="separator:a52690362de17617ca98f927e83b84ae5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa186fd55869c05e3731bbad2f0cec41"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fpro_8h.html#aaa186fd55869c05e3731bbad2f0cec41">qmove</a> (const char *oldfname, const char *newfname, <a class="el" href="pro_8h.html#a1134b580f8da4de94ca6b1de4d37975e">uint32</a> flags)</td></tr>
<tr class="memdesc:aaa186fd55869c05e3731bbad2f0cec41"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move a file - more powerful version of qrename.  <a href="#aaa186fd55869c05e3731bbad2f0cec41">More...</a><br /></td></tr>
<tr class="separator:aaa186fd55869c05e3731bbad2f0cec41"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af915e91f730ab71575355c3e3534b274"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fpro_8h.html#af915e91f730ab71575355c3e3534b274">qcopyfile</a> (const char *from, const char *to, bool overwrite=true, bool(<a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a> *cb)(<a class="el" href="pro_8h.html#a2f5563986d7f95e4fad5876c17d9cdda">uint64</a> pos, <a class="el" href="pro_8h.html#a2f5563986d7f95e4fad5876c17d9cdda">uint64</a> total, void *ud)=NULL, void *ud=NULL, int flags=0)</td></tr>
<tr class="memdesc:af915e91f730ab71575355c3e3534b274"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy a file.  <a href="#af915e91f730ab71575355c3e3534b274">More...</a><br /></td></tr>
<tr class="separator:af915e91f730ab71575355c3e3534b274"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae67df76c1a56fb1ff3ca5073b34a0540"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> char *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fpro_8h.html#ae67df76c1a56fb1ff3ca5073b34a0540">qtmpnam</a> (char *buf, size_t bufsize)</td></tr>
<tr class="memdesc:ae67df76c1a56fb1ff3ca5073b34a0540"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get temporary file name.  <a href="#ae67df76c1a56fb1ff3ca5073b34a0540">More...</a><br /></td></tr>
<tr class="separator:ae67df76c1a56fb1ff3ca5073b34a0540"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">File I/O</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>The following functions work just like their counterparts from Clib, only they are safer, system independent, and they set qerrno (see <a class="el" href="pro_8h.html#aee2130be457b029a366d04ae2333e8b6" title="Get qerrno. ">get_qerrno()</a>).</p>
</div></td></tr>
<tr class="memitem:a6184b4896f4762a571602cd09a47a491"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6184b4896f4762a571602cd09a47a491"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> FILE *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><b>qfopen</b> (const char *file, const char *mode)</td></tr>
<tr class="separator:a6184b4896f4762a571602cd09a47a491"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a690ba0475ec2d299e620c7c71717b71d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a690ba0475ec2d299e620c7c71717b71d"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><b>qfread</b> (FILE *fp, void *buf, size_t n)</td></tr>
<tr class="separator:a690ba0475ec2d299e620c7c71717b71d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a0fb7dd7f85aa945dca05c117a835f4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2a0fb7dd7f85aa945dca05c117a835f4"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><b>qfwrite</b> (FILE *fp, const void *buf, size_t n)</td></tr>
<tr class="separator:a2a0fb7dd7f85aa945dca05c117a835f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5088d034407a2bebdde8242a7dc4a346"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5088d034407a2bebdde8242a7dc4a346"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#a42ae75d34f73b9e691bd16aaddb897e5">qoff64_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><b>qftell</b> (FILE *fp)</td></tr>
<tr class="separator:a5088d034407a2bebdde8242a7dc4a346"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8cfeb394f8713161add7b89afa6e50a2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8cfeb394f8713161add7b89afa6e50a2"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><b>qfseek</b> (FILE *fp, <a class="el" href="pro_8h.html#a42ae75d34f73b9e691bd16aaddb897e5">qoff64_t</a> offset, int whence)</td></tr>
<tr class="separator:a8cfeb394f8713161add7b89afa6e50a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8728271f58c83e0a69fa3ddd9f1d692"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac8728271f58c83e0a69fa3ddd9f1d692"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><b>qfclose</b> (FILE *fp)</td></tr>
<tr class="separator:ac8728271f58c83e0a69fa3ddd9f1d692"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a844cd5c84670431d764b8508bbf35228"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a844cd5c84670431d764b8508bbf35228"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><b>qflush</b> (FILE *fp)</td></tr>
<tr class="separator:a844cd5c84670431d764b8508bbf35228"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9cb0570d8eaf5ec97bac09ec7bc98e22"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9cb0570d8eaf5ec97bac09ec7bc98e22"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><b>qfputc</b> (int chr, FILE *fp)</td></tr>
<tr class="separator:a9cb0570d8eaf5ec97bac09ec7bc98e22"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff28a71358c6b9023e74f99e1cf20f73"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aff28a71358c6b9023e74f99e1cf20f73"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><b>qfgetc</b> (FILE *fp)</td></tr>
<tr class="separator:aff28a71358c6b9023e74f99e1cf20f73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a361381e1ddc328593d6b009478d47ac9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a361381e1ddc328593d6b009478d47ac9"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> char *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><b>qfgets</b> (char *s, size_t len, FILE *fp)</td></tr>
<tr class="separator:a361381e1ddc328593d6b009478d47ac9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6996d037c62fad993060d79494d8c72"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af6996d037c62fad993060d79494d8c72"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><b>qfputs</b> (const char *s, FILE *fp)</td></tr>
<tr class="separator:af6996d037c62fad993060d79494d8c72"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a20608972e14fe42b6185401fe6c99766"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a20608972e14fe42b6185401fe6c99766"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> FILE *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><b>qtmpfile</b> (void)</td></tr>
<tr class="separator:a20608972e14fe42b6185401fe6c99766"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf79c93a962dcfcffad882f4626abc63"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adf79c93a962dcfcffad882f4626abc63"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><b>qunlink</b> (const char *fname)</td></tr>
<tr class="separator:adf79c93a962dcfcffad882f4626abc63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75e2ebea58aecf32b229efa13bc83d1e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a75e2ebea58aecf32b229efa13bc83d1e"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><b>qaccess</b> (const char *fname, int mode)</td></tr>
<tr class="separator:a75e2ebea58aecf32b229efa13bc83d1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae44f0ac93beffa2cdba6cba0da68c7f5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae44f0ac93beffa2cdba6cba0da68c7f5"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> char *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><b>qgets</b> (char *line, size_t linesize)</td></tr>
<tr class="separator:ae44f0ac93beffa2cdba6cba0da68c7f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4070db40c90cc69bded7f52f7a7781e1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4070db40c90cc69bded7f52f7a7781e1"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><b>qvfprintf</b> (FILE *fp, const char *format, va_list va)</td></tr>
<tr class="separator:a4070db40c90cc69bded7f52f7a7781e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd390b6184c805fca16e14a2560740d6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acd390b6184c805fca16e14a2560740d6"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><b>qvprintf</b> (const char *format, va_list va)</td></tr>
<tr class="separator:acd390b6184c805fca16e14a2560740d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae8289c133d5598e9b203038500c8bf58"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae8289c133d5598e9b203038500c8bf58"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><b>qveprintf</b> (const char *format, va_list va)</td></tr>
<tr class="separator:ae8289c133d5598e9b203038500c8bf58"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a344eb1f37b1151c2b601eaf8fd3865"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8a344eb1f37b1151c2b601eaf8fd3865"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><b>qvfscanf</b> (FILE *fp, const char *format, va_list va)</td></tr>
<tr class="separator:a8a344eb1f37b1151c2b601eaf8fd3865"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2de41ca76bd6b6e64c26ed268796a8ec"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2de41ca76bd6b6e64c26ed268796a8ec"></a>
<a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int&#160;</td><td class="memItemRight" valign="bottom"><b>qfprintf</b> (FILE *fp, const char *format,...)</td></tr>
<tr class="separator:a2de41ca76bd6b6e64c26ed268796a8ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6f9adecb60cf5f06a773d5fb8a74a961"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6f9adecb60cf5f06a773d5fb8a74a961"></a>
<a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int&#160;</td><td class="memItemRight" valign="bottom"><b>qprintf</b> (const char *format,...)</td></tr>
<tr class="separator:a6f9adecb60cf5f06a773d5fb8a74a961"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7d22807f4af9d8cb78b1768f1578f58"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac7d22807f4af9d8cb78b1768f1578f58"></a>
<a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int&#160;</td><td class="memItemRight" valign="bottom"><b>qeprintf</b> (const char *format,...)</td></tr>
<tr class="separator:ac7d22807f4af9d8cb78b1768f1578f58"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af63659b35c3cad77bc5464aeb23075d0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af63659b35c3cad77bc5464aeb23075d0"></a>
<a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int&#160;</td><td class="memItemRight" valign="bottom"><b>qfscanf</b> (FILE *fp, const char *format,...)</td></tr>
<tr class="separator:af63659b35c3cad77bc5464aeb23075d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
readbytes/writebytes</h2></td></tr>
<tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrp1179b2123f22b45f16a6d95f34b135ca"></a>Add-ins for 2..32 byte read/writes.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fp</td><td>pointer to file </td></tr>
    <tr><td class="paramname">res</td><td>value read from file </td></tr>
    <tr><td class="paramname">size</td><td>size of value in bytes (1..32) </td></tr>
    <tr><td class="paramname">mostfirst</td><td>is MSB first? (0/1) </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">0</td><td>All these functions return 0 on success </td></tr>
  </table>
  </dd>
</dl>
</td></tr>
<tr class="memitem:a91abf0c3313c32a1e92939f9dcc85c63"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><b>DEF_FREADBYTES</b>(read,  write,  type,  size)                                              </td></tr>
<tr class="separator:a91abf0c3313c32a1e92939f9dcc85c63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adec9915e7db85b3b7d6e0ca871aaad1c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adec9915e7db85b3b7d6e0ca871aaad1c"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><b>freadbytes</b> (FILE *fp, void *res, int size, int mostfirst)</td></tr>
<tr class="separator:adec9915e7db85b3b7d6e0ca871aaad1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9257ca88bec086ed991d9f378dfb21be"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9257ca88bec086ed991d9f378dfb21be"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><b>fwritebytes</b> (FILE *fp, const void *l, int size, int mostfirst)</td></tr>
<tr class="separator:a9257ca88bec086ed991d9f378dfb21be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc62de00a5f977aa1bf605e8c1bba15e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afc62de00a5f977aa1bf605e8c1bba15e"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>fread2bytes</b> (FILE *fp, <a class="el" href="pro_8h.html#a4355d16fcf9f644c9ac84293f0b1801f">int16</a> *res, bool mostfirst)</td></tr>
<tr class="separator:afc62de00a5f977aa1bf605e8c1bba15e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1811414616577b9f935a29f9d8e0cf0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac1811414616577b9f935a29f9d8e0cf0"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>fwrite2bytes</b> (FILE *fp, const <a class="el" href="pro_8h.html#a4355d16fcf9f644c9ac84293f0b1801f">int16</a> *res, bool mostfirst)</td></tr>
<tr class="separator:ac1811414616577b9f935a29f9d8e0cf0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a31ee4dff99d27096f956f3ba07f5d1af"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a31ee4dff99d27096f956f3ba07f5d1af"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>fread2bytes</b> (FILE *fp, <a class="el" href="pro_8h.html#a05f6b0ae8f6a6e135b0e290c25fe0e4e">uint16</a> *res, bool mostfirst)</td></tr>
<tr class="separator:a31ee4dff99d27096f956f3ba07f5d1af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7f22814c6155ede2b239a752c3dd1d3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa7f22814c6155ede2b239a752c3dd1d3"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>fwrite2bytes</b> (FILE *fp, const <a class="el" href="pro_8h.html#a05f6b0ae8f6a6e135b0e290c25fe0e4e">uint16</a> *res, bool mostfirst)</td></tr>
<tr class="separator:aa7f22814c6155ede2b239a752c3dd1d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9698d17b5843726c80303148c7ed14b6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9698d17b5843726c80303148c7ed14b6"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>fread4bytes</b> (FILE *fp, <a class="el" href="pro_8h.html#a56f1a81c92849566ae864511088eb7e8">int32</a> *res, bool mostfirst)</td></tr>
<tr class="separator:a9698d17b5843726c80303148c7ed14b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a302fa5ec8973d432e575c3e02a797bb7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a302fa5ec8973d432e575c3e02a797bb7"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>fwrite4bytes</b> (FILE *fp, const <a class="el" href="pro_8h.html#a56f1a81c92849566ae864511088eb7e8">int32</a> *res, bool mostfirst)</td></tr>
<tr class="separator:a302fa5ec8973d432e575c3e02a797bb7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab1b45e22ba6094cdfcfbad62aec3ccbb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab1b45e22ba6094cdfcfbad62aec3ccbb"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>fread4bytes</b> (FILE *fp, <a class="el" href="pro_8h.html#a1134b580f8da4de94ca6b1de4d37975e">uint32</a> *res, bool mostfirst)</td></tr>
<tr class="separator:ab1b45e22ba6094cdfcfbad62aec3ccbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c1a9f1947f32dcd31498b5394bae035"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7c1a9f1947f32dcd31498b5394bae035"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>fwrite4bytes</b> (FILE *fp, const <a class="el" href="pro_8h.html#a1134b580f8da4de94ca6b1de4d37975e">uint32</a> *res, bool mostfirst)</td></tr>
<tr class="separator:a7c1a9f1947f32dcd31498b5394bae035"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4a1eecc443f04e5f6a96f16490e153d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa4a1eecc443f04e5f6a96f16490e153d"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>fread8bytes</b> (FILE *fp, longlong *res, bool mostfirst)</td></tr>
<tr class="separator:aa4a1eecc443f04e5f6a96f16490e153d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a274afc3933be677bc7ca772d908671fb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a274afc3933be677bc7ca772d908671fb"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>fwrite8bytes</b> (FILE *fp, const longlong *res, bool mostfirst)</td></tr>
<tr class="separator:a274afc3933be677bc7ca772d908671fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af75e077ef329ef53c4c8df0e8354cf95"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af75e077ef329ef53c4c8df0e8354cf95"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>fread8bytes</b> (FILE *fp, ulonglong *res, bool mostfirst)</td></tr>
<tr class="separator:af75e077ef329ef53c4c8df0e8354cf95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a39885bd6e765bd1c44f08be9c0d46a00"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a39885bd6e765bd1c44f08be9c0d46a00"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>fwrite8bytes</b> (FILE *fp, const ulonglong *res, bool mostfirst)</td></tr>
<tr class="separator:a39885bd6e765bd1c44f08be9c0d46a00"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:aaca70138f0cb63ddb026921afc635179"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaca70138f0cb63ddb026921afc635179"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fpro_8h.html#aaca70138f0cb63ddb026921afc635179">stdin</a>&#160;&#160;&#160;dont_use_stdin</td></tr>
<tr class="memdesc:aaca70138f0cb63ddb026921afc635179"><td class="mdescLeft">&#160;</td><td class="mdescRight">use <a class="el" href="pro_8h.html#abd2e1f38c695f4eead224e19cbf102b0" title="use qfgets() ">gets()</a> <br /></td></tr>
<tr class="separator:aaca70138f0cb63ddb026921afc635179"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0c0ef221f95f64e8632451312fd18cc8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0c0ef221f95f64e8632451312fd18cc8"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fpro_8h.html#a0c0ef221f95f64e8632451312fd18cc8">stdout</a>&#160;&#160;&#160;dont_use_stdout</td></tr>
<tr class="memdesc:a0c0ef221f95f64e8632451312fd18cc8"><td class="mdescLeft">&#160;</td><td class="mdescRight">use qprintf() <br /></td></tr>
<tr class="separator:a0c0ef221f95f64e8632451312fd18cc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ce35bd5ba5021fd3b2e951e8f497656"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5ce35bd5ba5021fd3b2e951e8f497656"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fpro_8h.html#a5ce35bd5ba5021fd3b2e951e8f497656">stderr</a>&#160;&#160;&#160;dont_use_stderr</td></tr>
<tr class="memdesc:a5ce35bd5ba5021fd3b2e951e8f497656"><td class="mdescLeft">&#160;</td><td class="mdescRight">use qeprintf() <br /></td></tr>
<tr class="separator:a5ce35bd5ba5021fd3b2e951e8f497656"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a029f6d343db87fe8c80cf3e5bea2b5c1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a029f6d343db87fe8c80cf3e5bea2b5c1"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fpro_8h.html#a029f6d343db87fe8c80cf3e5bea2b5c1">fopen</a>&#160;&#160;&#160;dont_use_fopen</td></tr>
<tr class="memdesc:a029f6d343db87fe8c80cf3e5bea2b5c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">use qfopen() <br /></td></tr>
<tr class="separator:a029f6d343db87fe8c80cf3e5bea2b5c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16cef9bb6d20a96eace63d043b03ce91"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a16cef9bb6d20a96eace63d043b03ce91"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fpro_8h.html#a16cef9bb6d20a96eace63d043b03ce91">fread</a>&#160;&#160;&#160;dont_use_fread</td></tr>
<tr class="memdesc:a16cef9bb6d20a96eace63d043b03ce91"><td class="mdescLeft">&#160;</td><td class="mdescRight">use qfread() <br /></td></tr>
<tr class="separator:a16cef9bb6d20a96eace63d043b03ce91"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace50e1e3b73fb8bc9ae3a1ab3e972d91"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ace50e1e3b73fb8bc9ae3a1ab3e972d91"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fpro_8h.html#ace50e1e3b73fb8bc9ae3a1ab3e972d91">fwrite</a>&#160;&#160;&#160;dont_use_fwrite</td></tr>
<tr class="memdesc:ace50e1e3b73fb8bc9ae3a1ab3e972d91"><td class="mdescLeft">&#160;</td><td class="mdescRight">use qfwrite() <br /></td></tr>
<tr class="separator:ace50e1e3b73fb8bc9ae3a1ab3e972d91"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afea8baccc13623417424635d63c81a17"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afea8baccc13623417424635d63c81a17"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fpro_8h.html#afea8baccc13623417424635d63c81a17">ftell</a>&#160;&#160;&#160;dont_use_ftell</td></tr>
<tr class="memdesc:afea8baccc13623417424635d63c81a17"><td class="mdescLeft">&#160;</td><td class="mdescRight">use qftell() <br /></td></tr>
<tr class="separator:afea8baccc13623417424635d63c81a17"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a777150133445feb2cd8a3f846216d9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8a777150133445feb2cd8a3f846216d9"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fpro_8h.html#a8a777150133445feb2cd8a3f846216d9">fseek</a>&#160;&#160;&#160;dont_use_fseek</td></tr>
<tr class="memdesc:a8a777150133445feb2cd8a3f846216d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">use qfseek() <br /></td></tr>
<tr class="separator:a8a777150133445feb2cd8a3f846216d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1ba5ffb84241a674c082d911b80fc309"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1ba5ffb84241a674c082d911b80fc309"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fpro_8h.html#a1ba5ffb84241a674c082d911b80fc309">fclose</a>&#160;&#160;&#160;dont_use_fclose</td></tr>
<tr class="memdesc:a1ba5ffb84241a674c082d911b80fc309"><td class="mdescLeft">&#160;</td><td class="mdescRight">use qfclose() <br /></td></tr>
<tr class="separator:a1ba5ffb84241a674c082d911b80fc309"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a579d02171e2a45e0db99ff2c269a46eb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a579d02171e2a45e0db99ff2c269a46eb"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fpro_8h.html#a579d02171e2a45e0db99ff2c269a46eb">fflush</a>&#160;&#160;&#160;dont_use_fflush</td></tr>
<tr class="memdesc:a579d02171e2a45e0db99ff2c269a46eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">use qflush() <br /></td></tr>
<tr class="separator:a579d02171e2a45e0db99ff2c269a46eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2c758e16b323e6bfe250d26cd26e5e9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af2c758e16b323e6bfe250d26cd26e5e9"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fpro_8h.html#af2c758e16b323e6bfe250d26cd26e5e9">fputc</a>&#160;&#160;&#160;dont_use_fputc</td></tr>
<tr class="memdesc:af2c758e16b323e6bfe250d26cd26e5e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">use qfputc() <br /></td></tr>
<tr class="separator:af2c758e16b323e6bfe250d26cd26e5e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac38485ce41182cbd7ee7d554a2e1d40d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac38485ce41182cbd7ee7d554a2e1d40d"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fpro_8h.html#ac38485ce41182cbd7ee7d554a2e1d40d">fgetc</a>&#160;&#160;&#160;dont_use_fgetc</td></tr>
<tr class="memdesc:ac38485ce41182cbd7ee7d554a2e1d40d"><td class="mdescLeft">&#160;</td><td class="mdescRight">use qfgetc() <br /></td></tr>
<tr class="separator:ac38485ce41182cbd7ee7d554a2e1d40d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4127e6fa9f54483c38accbde8937b77"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa4127e6fa9f54483c38accbde8937b77"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fpro_8h.html#aa4127e6fa9f54483c38accbde8937b77">fgets</a>&#160;&#160;&#160;dont_use_fgets</td></tr>
<tr class="memdesc:aa4127e6fa9f54483c38accbde8937b77"><td class="mdescLeft">&#160;</td><td class="mdescRight">use qfgets() <br /></td></tr>
<tr class="separator:aa4127e6fa9f54483c38accbde8937b77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4760567d49d1aebc24f0de6d0c2b4504"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4760567d49d1aebc24f0de6d0c2b4504"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fpro_8h.html#a4760567d49d1aebc24f0de6d0c2b4504">fputs</a>&#160;&#160;&#160;dont_use_fputs</td></tr>
<tr class="memdesc:a4760567d49d1aebc24f0de6d0c2b4504"><td class="mdescLeft">&#160;</td><td class="mdescRight">use qfputs() <br /></td></tr>
<tr class="separator:a4760567d49d1aebc24f0de6d0c2b4504"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8fdc4bb69d2ce8fe042b88eae7160e6e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8fdc4bb69d2ce8fe042b88eae7160e6e"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fpro_8h.html#a8fdc4bb69d2ce8fe042b88eae7160e6e">vfprintf</a>&#160;&#160;&#160;dont_use_vfprintf</td></tr>
<tr class="memdesc:a8fdc4bb69d2ce8fe042b88eae7160e6e"><td class="mdescLeft">&#160;</td><td class="mdescRight">use qvfprintf() <br /></td></tr>
<tr class="separator:a8fdc4bb69d2ce8fe042b88eae7160e6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b4dfd176d695edb0ff6a2f9082225d0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8b4dfd176d695edb0ff6a2f9082225d0"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fpro_8h.html#a8b4dfd176d695edb0ff6a2f9082225d0">vfscanf</a>&#160;&#160;&#160;dont_use_vfscanf</td></tr>
<tr class="memdesc:a8b4dfd176d695edb0ff6a2f9082225d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">use qvfscanf() <br /></td></tr>
<tr class="separator:a8b4dfd176d695edb0ff6a2f9082225d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab6e63106cf29e5160e5c2d63db86d27"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aab6e63106cf29e5160e5c2d63db86d27"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fpro_8h.html#aab6e63106cf29e5160e5c2d63db86d27">fprintf</a>&#160;&#160;&#160;dont_use_fprintf</td></tr>
<tr class="memdesc:aab6e63106cf29e5160e5c2d63db86d27"><td class="mdescLeft">&#160;</td><td class="mdescRight">use qfprintf() <br /></td></tr>
<tr class="separator:aab6e63106cf29e5160e5c2d63db86d27"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3ce24f3b2b0397c89edc3a7209e48dcc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3ce24f3b2b0397c89edc3a7209e48dcc"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fpro_8h.html#a3ce24f3b2b0397c89edc3a7209e48dcc">fscanf</a>&#160;&#160;&#160;dont_use_fscanf</td></tr>
<tr class="memdesc:a3ce24f3b2b0397c89edc3a7209e48dcc"><td class="mdescLeft">&#160;</td><td class="mdescRight">use qfscanf() <br /></td></tr>
<tr class="separator:a3ce24f3b2b0397c89edc3a7209e48dcc"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:af297faa873672bf2a62542c6cd782302"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af297faa873672bf2a62542c6cd782302"></a>
typedef <a class="el" href="structjanitor__t.html">janitor_t</a>&lt; FILE * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fpro_8h.html#af297faa873672bf2a62542c6cd782302">file_janitor_t</a></td></tr>
<tr class="memdesc:af297faa873672bf2a62542c6cd782302"><td class="mdescLeft">&#160;</td><td class="mdescRight">File janitor: will close a file upon deletion. <br /></td></tr>
<tr class="separator:af297faa873672bf2a62542c6cd782302"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:a458e651af6690959efa2afb96be7d609"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a458e651af6690959efa2afb96be7d609"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>QMOVE_CROSS_FS</b> = 0x01, 
<b>QMOVE_OVERWRITE</b> = 0x02, 
<b>QMOVE_OVR_RO</b> = 0x04
 }</td></tr>
<tr class="separator:a458e651af6690959efa2afb96be7d609"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="a91abf0c3313c32a1e92939f9dcc85c63"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEF_FREADBYTES</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">read, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">write, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">size&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">inline</span> <span class="keywordtype">int</span> read(FILE *fp, type *res, <span class="keywordtype">bool</span> mostfirst)            \</div>
<div class="line">                { <span class="keywordflow">return</span> freadbytes(fp, res, size, mostfirst); }        \</div>
<div class="line">        inline <span class="keywordtype">int</span> write(FILE *fp, <span class="keyword">const</span> type *res, <span class="keywordtype">bool</span> mostfirst)     \</div>
<div class="line">                { <span class="keywordflow">return</span> fwritebytes(fp, res, size, mostfirst); }</div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a826d67a958355c5ff8b3ca65656ff1c8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#ab65ed42d67e6c517c746ff2a6a187016">ssize_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> qgetline </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">FILE *&#160;</td>
          <td class="paramname"><em>fp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Read line from file (the newline is removed from the output buffer) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">buf</td><td>output buffer </td></tr>
    <tr><td class="paramname">fp</td><td>pointer to file </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>-1 or length of line </dd></dl>

</div>
</div>
<a class="anchor" id="aaa186fd55869c05e3731bbad2f0cec41"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> qmove </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>oldfname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>newfname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a1134b580f8da4de94ca6b1de4d37975e">uint32</a>&#160;</td>
          <td class="paramname"><em>flags</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Move a file - more powerful version of qrename. </p>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">0</td><td>success </td></tr>
    <tr><td class="paramname">-1</td><td>system error </td></tr>
    <tr><td class="paramname">else</td><td>a combination of flags to be given for successful move </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="af915e91f730ab71575355c3e3534b274"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> qcopyfile </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>from</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>to</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>overwrite</em> = <code>true</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool(<a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a> *)(<a class="el" href="pro_8h.html#a2f5563986d7f95e4fad5876c17d9cdda">uint64</a> pos, <a class="el" href="pro_8h.html#a2f5563986d7f95e4fad5876c17d9cdda">uint64</a> total, void *ud)&#160;</td>
          <td class="paramname"><em>cb</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>ud</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>flags</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Copy a file. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">from</td><td>source file name </td></tr>
    <tr><td class="paramname">to</td><td>destination file name </td></tr>
    <tr><td class="paramname">overwrite</td><td>overwrite output if it exists? </td></tr>
    <tr><td class="paramname">cb</td><td>user callback. return false to abort the copy loop </td></tr>
    <tr><td class="paramname">ud</td><td>user data passed back to cb </td></tr>
    <tr><td class="paramname">flags</td><td>reserved (should be zero) </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">-1</td><td>input file not found </td></tr>
    <tr><td class="paramname">-2</td><td>output file not writable </td></tr>
    <tr><td class="paramname">-3</td><td>output file already exists while overwrite is false </td></tr>
    <tr><td class="paramname">-4</td><td>write failure </td></tr>
    <tr><td class="paramname">-5</td><td>interrupted from the callback </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ae67df76c1a56fb1ff3ca5073b34a0540"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> char* <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> qtmpnam </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>bufsize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get temporary file name. </p>
<p>Returns absolute path, includes directory, and uses TEMP/TMP vars. </p>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
</body>
</html>
